This relates to integrated circuits such as programmable integrated circuits with interconnect circuitry.
Programmable integrated circuits are well known. Programmable integrated circuits can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the tools generate configuration data. The configuration data is loaded into programmable integrated circuit memory elements to configure the device to perform the functions of the custom logic circuit. In particular, the configuration data configures programmable interconnects, programmable routing circuits, and programmable logic circuits in the programmable integrated circuits.
Programmable integrated circuits include programmable logic circuits that are configured to receive input signals and perform custom functions to produce output signals. The input and output signals to each logic circuit may be provided by interconnects that can be configured to selectively route signals throughout the programmable integrated circuit. Each interconnect typically has a corresponding multiplexing circuit and driver (i.e., the ratio between each interconnect, multiplexing circuit, and driver is 1:1:1). The multiplexing circuit receives the output signals from the logic circuits and selects which of the logic circuit output signals is driven onto the corresponding interconnect. The selected logic circuit output signal is driven onto the interconnect by the driver.
The direct correspondence between a multiplexing circuit, driver, and interconnect (i.e., the 1:1:1 ratio between each multiplexing circuit, driver, and interconnect) can result in inefficient use of resources on a programmable integrated circuit. For example, interconnects may have various types that are each associated with different physical characteristics such as length and resistance. For each type of interconnect, a conventional programmable integrated circuit includes a corresponding multiplexing circuit and driver. To provide a given logic circuit output signal to each of the different types of interconnects, the conventional programmable integrated circuit must provide routing paths (e.g., wires or local interconnects) from the logic circuit that produces the output signal to each of the multiplexing circuits. The routing paths may occupy a significant amount of area on the programmable integrated circuit (e.g., area that could potentially be used to form transistors or other logic circuits).